import request from '../utils/request'

// 1. 用户注册接口   不用写入store中
export const registerUser = (params) => {
  return request({
    url: '/users/register',
    method: 'post',
    data: params, // 参数包含 account, password, name, address, phone
  })
}

// 2. 用户登录接口
export const loginUser = (params) => {
  return request({
    url: '/users/login',
    method: 'post',
    data: params, // 参数包含 account, password
  })
}

// 3. 获取当前用户信息
export const getCurrentUser = (id) => {
  return request({
    url: '/users/me',
    method: 'get',
    params: { id }, // 查询参数 id（MongoDB OID）
  })
}

// 4. 更新用户信息    不用写入store中
export const updateUserInfo = (data) => {
  return request({
    url: '/users/me',
    method: 'put',
    data: data, // 参数包含 userId, name（可选）, address（可选）, phone（可选）
  })
}

// 5. 管理员获取所有用户列表
export const getAllUsers = () => {
  return request({
    url: '/users/all',
    method: 'get',
  })
}

// 6. 获取客户列表（role=0）
export const getCustomers = () => {
  return request({
    url: '/users/customers',
    method: 'get',
  })
}

// 7. 获取客服列表（role=1）
export const getStaffs = () => {
  return request({
    url: '/users/staffs',
    method: 'get',
  })
}

// 8. 获取站点列表（role=2）
export const getStations = () => {
  return request({
    url: '/users/stations',
    method: 'get',
  })
}

// 9. 获取维修员列表（role=3）
export const getRepairmen = () => {
  return request({
    url: '/users/repairmen',
    method: 'get',
  })
}

// 10. 更改用户权限接口
export const updateUserRole = (data) => {
  return request({
    url: '/users/update-role',
    method: 'put',
    data: data, // 参数包含 userId, newRole（0-4）
  })
}

// 11. 权限申请接口
export const submitRoleApplication = (data) => {
  return request({
    url: '/users/applications',
    method: 'post',
    data: data, // 参数包含 user_id, applied_role（1-3）
  })
}

// 12. 申请单列表接口
export const getApplicationList = (params) => {
  return request({
    url: '/users/applications',
    method: 'get',
    params: params, // 查询参数 status（可选）, user_id（可选）
  })
}
// 13. 维修员创建加入站点申请接口
export const createStationMembershipApplication = (data) => {
  return request({
    url: '/users/station-membership-applications',
    method: 'post',
    data: data, // 参数包含 user_id（必填，维修员ID）、station_id（必填，目标站点ID）、remark（可选，备注）
  })
}
// 14. 拒绝权限/站点申请接口（管理员/站点审核）
export const rejectApplication = (id, data) => {
  return request({
    url: `/users/applications/${id}/reject`,
    method: 'put',
    data: data, // 参数包含 reason（可选，拒绝原因）
  })
}
// 15. 管理员通过维修员加入站点申请接口
export const approveApplication = (id) => {
  return request({
    url: `/users/applications/${id}/approve`,
    method: 'put',
  })
}
